Skip to main content

Linux Basic Commands

pwd - Print Working Directory

Hozirgi katalogni ko'rsatadi.

# Hozirgi katalogni aniqlash
pwd
# Natija: /home/username

# Symbolic link'lar bilan ishlash
pwd -P # Physical path (real path)
pwd -L # Logical path (symbolic link orqali)

DevOps uchun amaliy foydalanish:

# Script'da hozirgi katalogni saqlash
CURRENT_DIR=$(pwd)
echo "Script is running from: $CURRENT_DIR"

cd - Change Directory

Katalog o'zgartirish uchun ishlatiladi.

# Asosiy foydalanish
cd /path/to/directory # Absolut path
cd relative/path # Nisbiy path

# Maxsus shortcut'lar
cd ~ # Home directory ga o'tish
cd ~/Documents # Home/Documents ga o'tish
cd - # Oldingi katalogga qaytish
cd .. # Yuqori katalogga o'tish
cd ../.. # Ikki daraja yuqoriga
cd . # Hozirgi katalogda qolish

# Katalog nomi bo'sh joy bilan
cd "My Documents" # Qo'shtirnoq ishlatish
cd My\ Documents # Backslash ishlatish

DevOps uchun amaliy misollar:

# Kubernetes konfiguratsiya katalogiga o'tish
cd /etc/kubernetes/

# Docker compose loyihalariga o'tish
cd ~/projects/microservices/

# Log katalogiga o'tish
cd /var/log/nginx/

# Temporary working directory
cd /tmp/deployment/

ls - List Directory Contents

Katalog mazmunini ko'rsatadi.

# Asosiy foydalanish
ls # Hozirgi katalog
ls /path/to/directory # Berilgan katalog
ls file1 file2 # Maxsus fayllar

# Muhim parametrlar
ls -l # Long format (batafsil)
ls -a # Hidden fayllar ham (.dot fayllari)
ls -la # Long format + hidden fayllar
ls -lh # Human readable size
ls -lt # Vaqt bo'yicha saralash
ls -ltr # Teskari vaqt bo'yicha
ls -lS # Hajm bo'yicha saralash
ls -R # Recursive (ichki kataloglar ham)

Advanced ls options:

# Ranglar bilan
ls --color=auto

# Faqat kataloglar
ls -d */

# Faqat hidden fayllar
ls -ld .*

# O'lcham bilan
ls -lah

# Inode numbers bilan
ls -li

# Fayllarni type bo'yicha ko'rsatish
ls -F
# / - katalog
# * - executable
# @ - symbolic link
# | - named pipe
# = - socket

# Specific file types
ls *.txt # Faqat .txt fayllar
ls -l *.conf # .conf fayllari long format da

# DevOps uchun foydali
ls -la /etc/nginx/ # Nginx konfiguratsiya fayllari
ls -ltr /var/log/ # Eng yangi log fayllar
ls -lah ~/.ssh/ # SSH kalitlari

Directory Operations (Katalog Operatsiyalari)

mkdir - Make Directory

Yangi katalog yaratish.

# Asosiy foydalanish
mkdir newdir # Bitta katalog
mkdir dir1 dir2 dir3 # Bir nechta katalog

# Parent kataloglar bilan
mkdir -p /path/to/deep/directory
mkdir -p project/{src,tests,docs,config}

# Permission bilan yaratish
mkdir -m 755 newdir # Specific permission
mkdir -m 700 secure_dir # Faqat owner access

# Verbose mode
mkdir -v newdir # Yaratilgani haqida xabar

DevOps uchun amaliy misollar:

# Kubernetes deployment structure
mkdir -p k8s/{namespaces,deployments,services,configmaps,secrets}

# Docker project structure
mkdir -p docker-project/{src,tests,config,scripts,docs}

# Log directories
sudo mkdir -p /var/log/myapp/{access,error,debug}

# Backup directories
mkdir -p ~/backups/$(date +%Y-%m-%d)

# Terraform project
mkdir -p terraform/{modules,environments,scripts}

rmdir - Remove Directory

Bo'sh kataloglarni o'chirish.

# Bo'sh katalogni o'chirish
rmdir empty_dir

# Bir nechta bo'sh katalog
rmdir dir1 dir2 dir3

# Parent kataloglarni ham o'chirish (agar bo'sh bo'lsa)
rmdir -p path/to/empty/directory

# Ignore non-empty directories
rmdir --ignore-fail-on-non-empty dir1 dir2

rm - Remove Files and Directories

Fayllar va kataloglarni o'chirish.

# Fayl o'chirish
rm file.txt
rm file1.txt file2.txt

# Katalog o'chirish (recursive)
rm -r directory/ # Recursive
rm -rf directory/ # Force + recursive
rm -ri directory/ # Interactive + recursive

# Maxsus parametrlar
rm -f file.txt # Force (hatto readonly bo'lsa ham)
rm -i file.txt # Interactive (tasdiqlash so'rash)
rm -v file.txt # Verbose (harakatni ko'rsatish)

# Wildcard patterns
rm *.txt # Barcha .txt fayllar
rm test* # test bilan boshlangan fayllar
rm *.log *.tmp # .log va .tmp fayllar

# Xavfsizlik uchun
rm -I * # 3 tadan ko'p fayl uchun tasdiqlash

Xavfsizlik bo'yicha muhim eslatmalar:

# HECH QACHON buni QILMANG!
rm -rf / # Butun tizimni o'chiradi
rm -rf /* # Barcha root kataloglarni o'chiradi

# Xavfsiz alternativalar
# Avval ls bilan tekshiring
ls -la directory/
# Keyin o'chiring
rm -rf directory/

# Trash o'rniga foydalaning (agar mavjud bo'lsa)
trash file.txt # Recycle bin ga o'tkazish

DevOps uchun amaliy misollar:

# Old container logs tozalash
rm -f /var/log/containers/*.log

# Temporary build files
rm -rf build/ dist/ node_modules/

# Old backup files (7 kundan eski)
find /backups/ -type f -mtime +7 -delete

# Clean Docker resources
docker system prune -a -f

# Clean old deployment files
rm -rf /tmp/deployment-$(date -d '1 week ago' +%Y%m%d)*

File Operations (Fayl Operatsiyalari)

cp - Copy Files and Directories

Fayllar va kataloglarni nusxalash.

# Asosiy fayl nusxalash
cp source.txt destination.txt
cp source.txt /path/to/destination/

# Katalog nusxalash
cp -r source_dir/ destination_dir/

# Muhim parametrlar
cp -a source dest # Archive mode (barcha atributlar bilan)
cp -p source dest # Preserve permissions, timestamps
cp -u source dest # Update (faqat yangisi bo'lsa)
cp -i source dest # Interactive (ustiga yozishdan oldin so'rash)
cp -v source dest # Verbose mode
cp -f source dest # Force (majburiy)

# Backup yaratish
cp -b source dest # Backup copy yaratish
cp --backup=numbered source dest # Numbered backup

# Symbolic link'lar bilan
cp -L source dest # Follow symbolic links
cp -P source dest # Preserve symbolic links

DevOps uchun amaliy misollar:

# Configuration backup
cp -p /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup

# Copy deployment configs
cp -r k8s/staging/ k8s/production/

# Archive with permissions
cp -a /opt/app/ /backup/app-$(date +%Y%m%d)/

# Copy Docker files
cp Dockerfile.template Dockerfile

# Multiple server config deployment
for server in server1 server2 server3; do
cp config.yaml $server/
done

mv - Move/Rename Files and Directories

Fayllarni ko'chirish yoki qayta nomlash.

# Fayl nomlashni o'zgartirish
mv oldname.txt newname.txt

# Fayl ko'chirish
mv file.txt /new/location/
mv file.txt /new/location/newname.txt

# Katalog ko'chirish/nomlash
mv old_dir/ new_dir/
mv directory/ /new/path/

# Parametrlar
mv -i source dest # Interactive mode
mv -u source dest # Update only
mv -v source dest # Verbose mode
mv -f source dest # Force mode
mv -b source dest # Backup yaratish

# Bir nechta fayl
mv file1 file2 file3 destination_directory/
mv *.txt documents/

DevOps uchun amaliy misollar:

# Log rotation
mv /var/log/app.log /var/log/app.log.$(date +%Y%m%d)

# Deployment versioning
mv current-release/ previous-release/
mv new-release/ current-release/

# Configuration management
mv nginx.conf nginx.conf.old
mv nginx.conf.new nginx.conf

# Kubernetes manifests
mv deployment-v1.yaml deployment-v1.yaml.backup
mv deployment-v2.yaml deployment.yaml

# Database migrations
mv schema.sql schema-$(date +%Y%m%d_%H%M%S).sql

File Content Commands (Fayl Mazmuni Buyruqlari)

cat - Display File Content

Fayl mazmunini ko'rsatish.

# Asosiy foydalanish
cat file.txt # Fayl mazmunini ko'rsatish
cat file1.txt file2.txt # Bir nechta fayl

# Useful options
cat -n file.txt # Line numbers bilan
cat -b file.txt # Faqat bo'sh bo'lmagan qatorlar uchun raqam
cat -A file.txt # Barcha maxsus belgilarni ko'rsatish
cat -s file.txt # Multiple blank lines ni bitta qilish

# File yaratish (Here document)
cat > newfile.txt << EOF
Bu yangi fayl matni
Ikkinchi qator
EOF

# File ga qo'shish
cat >> existing_file.txt << EOF
Qo'shimcha matn
EOF

DevOps uchun amaliy misollar:

# Config fayl ko'rish
cat /etc/nginx/nginx.conf

# Multiple config files
cat /etc/host*

# Log file ko'rish
cat /var/log/app.log

# Kubernetes manifest
cat deployment.yaml

# Docker compose file
cat docker-compose.yml

# Script yaratish
cat > deploy.sh << 'EOF'
#!/bin/bash
echo "Starting deployment..."
kubectl apply -f deployment.yaml
EOF
chmod +x deploy.sh

Amaliy DevOps Stsenarilar

1. Loyiha Strukturasini Yaratish

# Microservice loyihasi yaratish
mkdir -p microservice-project/{
api/{src,tests,config},
web/{src,public,tests},
database/{migrations,seeds},
infrastructure/{kubernetes,terraform,ansible},
docs,
scripts
}

# Docker environment
mkdir -p docker-env/{
app,
nginx,
database,
redis
}

2. Log Tahlili

# Eng katta log fayllarni topish
ls -laSh /var/log/ | head -10

# Yangi log fayllarni ko'rish
ls -ltr /var/log/ | tail -5

# Container log'larni ko'rish
ls -la /var/lib/docker/containers/*/

3. Xavfsizlik va Backup

# SSH kalitlarini backup qilish
cp -a ~/.ssh/ ~/backup/ssh-backup-$(date +%Y%m%d)/

# Important config files backup
mkdir -p ~/backup/configs-$(date +%Y%m%d)
cp /etc/nginx/nginx.conf ~/backup/configs-$(date +%Y%m%d)/
cp /etc/hosts ~/backup/configs-$(date +%Y%m%d)/
cp /etc/fstab ~/backup/configs-$(date +%Y%m%d)/

4. Cleanup Scripts

# Old temporary files tozalash
rm -rf /tmp/*-old
rm -f /tmp/*.tmp

# Docker cleanup
rm -rf /var/lib/docker/tmp/*

# Log rotation
mv /var/log/app.log /var/log/app.log.$(date +%Y%m%d_%H%M%S)
touch /var/log/app.log

Xulosa

Ushbu asosiy buyruqlar Linux tizimida ish yuritishning poydevoridir. DevOps muhandislari uchun bu buyruqlarni mukammal bilish juda muhim, chunki:

  1. Tizim navigatsiyasi: pwd, cd, ls buyruqlari bilan tizimda erkin harakatlanish
  2. Fayl boshqaruvi: mkdir, rm, cp, mv bilan fayl va kataloglarni boshqarish
  3. Monitoring: Log fayllar va konfiguratsiyalarni ko'rish va tahlil qilish
  4. Automatizatsiya: Script'larda ushbu buyruqlardan foydalanish

Har bir buyruqning man sahifasini o'qib chiqing (man ls, man cp, va h.k.) va amaliyotda ko'proq mashq qiling!